package godzilla.ciudad.administradores;

import org.json.JSONObject;
import org.json.JSONString;

import godzilla.ciudad.Punto;
import godzilla.ciudad.estructuras.Estructura;
import godzilla.ciudad.estructuras.NoSePuedeConstruirAquiException;

public class Jugador implements JSONString {

	
	private String nombre;
	private int dinero;
	private Juego juegoAsignado;

	public Jugador(String string,int dineroInicial) {
		this.nombre = string;
		this.dinero = dineroInicial;
		
	}

	public int dinero() {
		
		return this.dinero;

	}

	public void construir(Estructura estructura, Punto punto) throws NoSePuedeConstruirAquiException {

		this.juegoAsignado.construir( estructura , punto);
		
	}

	public void asignarJuego(Juego juego) {

		this.juegoAsignado = juego;
		
	}

	public void restarDinero(int costo) {

		this.dinero = this.dinero - costo;
		
	}

	public void depositarDinero(int cantidad) {

		this.dinero = this.dinero + cantidad;
		
	}

	public void inundar(Punto punto) {

		juegoAsignado.inundar(punto);
		
	}
	
	public String nombre(){
		return nombre;
	}

	public void destruirEstructuraEn(Punto punto) {

		juegoAsignado.destruirEstructuraEn(punto);
		
	}

	public static Jugador obtenerObjetoDesdeJSON(String string) {
		JSONObject objetoJSON = new JSONObject(string);
		String nombre = objetoJSON.getString("Nombre");
		int dinero = objetoJSON.getInt("Dinero");
		Jugador nuevoJugador = new Jugador(nombre, dinero);
		return nuevoJugador;
		
	}

	@Override
	public String toJSONString() {
		JSONObject objetoJSON = new JSONObject();
		objetoJSON.put("Nombre", nombre);
		objetoJSON.put("Dinero", dinero);
		
		return objetoJSON.toString();
	}

}
